package com.piggy.logi.sys.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.piggy.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 短驳车次信息分页查询对象 logi_drayage
 *
 * @author piggy
 * @date 2023-09-18
 */

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("短驳车次信息分页查询对象")
public class LogiDrayageQueryBo extends BaseEntity {

    /**
     * 短驳单号 YYYYMMDD+序号
     */
    @ApiModelProperty("短驳单号 YYYYMMDD+序号")
    private String drayageNo;

    /** 流程状态 */
    @ApiModelProperty("流程状态")
    private Integer drayageStatus;
    /**
     * 司机信息
     */
    @ApiModelProperty("司机信息")
    private String driverJson;
    /**
     * 车辆信息
     */
    @ApiModelProperty("车辆信息")
    private String carJson;

    /** 出发网点 */
    @ApiModelProperty("短驳出发网点")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long depDeptId;

    /** 到达网点 */
    @ApiModelProperty("短驳到达网点")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long desDeptId;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开始时间")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("结束时间")
    private Date endTime;

    /**
     * 主键
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("主键")
    private Long drayageId;

    /**
     * 司机id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("司机id")
    private Long driverId;
    /**
     * 车辆id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("车辆id")
    private Long carId;

    /**
     * 发车时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("发车时间")
    private Date departTime;
    /**
     * 到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("到达时间")
    private Date arriveTime;

    @ApiModelProperty("短驳单号 YYYYMMDD+序号集合")
    private List<String> drayageNos;

    /** 流程状态 */
    @ApiModelProperty("流程状态，多状态查询")
    private List<Integer> drayageList;

    @ApiModelProperty("运单编号")
    private String outCode;
}
